Until the early 1990's, the graphics card was a component such as an adaptor for converting the operation result of the Central Processing Unit (CPU) to a picture or text signal to be output on the screen. However, as the market of multimedia contents, especially game contents, has grown, the role of the graphics card has changed.
In some instances, the graphics card has been developed to give games a three-dimensional (3D) effect and to make the pictures vivid with various visual effects and texture enrichment techniques. Such a tendency has brought the Graphics Processing Unit (GPU) for the purpose of assisting the role of the CPU.
FIG. 1 is a block diagram illustrating a configuration of a terminal.
Referring to FIG. 1, the CPU 110 is responsible for controlling the conditions and operations of the overall components of the terminal. The CPU 110 is capable of interpreting and operating the command input for executing a specific application and outputting the result. That is, if a code corresponding to the application to be executed is input, the CPU 110 compiles the code into an executable binary. The CPU 110 executes the application through this binary.
The CPU 110 is also capable of controlling the communication unit 120 to communicate data with an external entity and processing various commands input by the user through the input unit 130. The CPU 110 is also capable of controlling the storage unit 140 to store the data generated by a specific application, input by the user, and received from the external entity.
The GPU 150 is a control unit designed for processing the graphics promptly and capable of processing the graphics-related binary. The GPU 150 is also capable of performing graphic operations related to various data displayed by the display unit 160.
Typically, the application execution method of a terminal is characterized in that the CPU processes all kinds of operations while the GPU processes only the graphics-related operations. The application execution method of the CPU is described in more detailed hereinafter.
FIG. 2 is a flowchart illustrating an application execution method.
Referring to FIG. 2, the CPU 110 receives the source code for executing an application at block 210 and compiles the source code at block 220. That is, the CPU 110 checks the dependency between variables and performs optimization to optimize the dependency by branch statements. Through dependency analysis, the CPU 110 is capable of adjusting the execution order of the commands to shorten the application execution time.
Next, the CPU 110 generates a binary to execute the action related to the corresponding application at block 230. Finally, the CPU 110 executes the corresponding application through the generated binary at block 240.
Recent GPUs tend to be equal or superior to the CPU in performance. Accordingly, studies are being conducted for the non-graphic processing of the GPU as well as the graphic processing.
However, since the programming interface and model are designed in consideration of a specific format for the graphic processing, it is difficult to design the GPU to process the non-graphic operations as the CPU. Although it is possible to use the GPU resource for non-graphic operations through the parallel processor programming, there is a problem in that a new programming language may be required. Also, since program codes operating on the CPU and GPU differ from each other, the codes compiled for the two processing units can neither be assigned resources in real time nor moved.